#ifndef BOUNDARY_H_
#define BOUNDARY_H_

// INCLUDES //
#include "path.h"
#include "area.h"
//////////////

/**
* A boundary keeps a path within a certain area.
* 
* @author dfoelber
**/
class Boundary
{
public:
	/**
	* Constructor
	**/
	Boundary();
	
	/**
	* Destructor
	**/
	~Boundary();
	
	/**
	* Sets the boundary as a rectangle.
	* 
	* @param x The new X coordinate
	* @param y The new Y coordinate
	* @param width The new width
	* @param height The new height
	**/
	void SetBoundary( int x, int y, int width, int height );
	
	/**
	* Checks the given area and makes sure that it is
	* within the boundary. Notifies path on intersection.
	* 
	* @param path The path to check for intersection
	* @return true if the area intersects the boundary.
	**/
	bool Check( Path* path );
	
	/**
	* Gets the X coordinate
	* 
	* @return The current X coordinate
	**/	
	int GetX();
	
	/**
	* Gets the Y coordinate
	* 
	* @return The current Y coordinate
	**/	
	int GetY();
	
	/**
	* Gets the width
	* 
	* @return The current width
	**/	
	int GetWidth();
	
	/**
	* Gets the height
	* 
	* @return The current height
	**/	
	int GetHeight();
	
private:
	/// The boundary's X coordinate
	int			x;
	/// The boundary's Y coordinate
	int			y;
	/// The boundary's width
	int			width;
	/// The boundary's height
	int			height;
};

#endif /*BOUNDARY_H_*/
